/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.tms.entity;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.List;
import com.google.common.collect.Lists;

import com.jeeplus.core.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.infor.entity.Staff;

/**
 * 运单Entity
 * @author 李超辉
 * @version 2017-12-05
 */
public class TmsWaybill extends DataEntity<TmsWaybill> {
	
	private static final long serialVersionUID = 1L;
	private String code;		// 运单号
	private String shipmentNumbers;		// 装运单号
	private Date date;		// 下单日期
	private Date deliveryTime;		// 要求发货时间
	private String unitName;		// 收货单位名称
	private String unitConfirmor;		// 收货单位确认人
	private String phone;		// 确认人电话
	private String site;		// 收货详细地址
	private String arriveProvince;		// 到站省
	private String arriveCity;		// 到站地城市
	private String distance;		// 合同里程
	private String transitLines;		// 运输线路
	private String entrustNumber;		// 委托单号
	private String projectName;		// 项目名称
	private String status;		// 回单状态
	private String billStatus;  //运单状态
	private String transportMode;		// 运输方式
	private String clearingMode;		// 结算方式
	private String clearingType;		// 结算类型
	private String contractDistance;		// 合同运距
	private Date arrivalTime;		// 要求到货时间
	private String characteristic;		// 特点
	private String numbers;		// 配载单号
	private Date stowageDate;		// 配载日期
	private Staff dispatchName;		// 调度人员
	private Staff guidance;		// 现场督导
	private String consign;		// 托运类型
	private Date presentTime;		// 预计到场时间
	private String receiptsStatus;		// 单据状态
	private String commonCarrier;		// 承运商
	private String contacts;		// 承运商联系人
	private String plateNumber;		// 车牌号码
	private String drivingLicense;		// 行驶证号
	private String driverName;		// 司机姓名
	private String driverPhone;		// 司机电话
	private String vehicleType;		// 车辆类型
	private String driveNumber;		// 驾驶证号
	private String delivery;		// 提货流程
	private String gaveCommodity;		// 送货流程
	private String attention;		// 注意事项
	private String payeeName;		// 收款人姓名
	private String cardNumber;		// 卡号
	private String bankAddress;		// 开户行
	private String kdPayment;		// 货到付款
	private String paymentWay;		// 支付方式(货到)
	private String paymentNumber;		// 油卡卡号(货到)
	private  String kdJe; //油卡金额（货到）
	private String loadingPayment;		// 装货付款
	private String loadingPaymentWay;		// 支付方式(装货)
	private String loadingCardNumber;		// 油卡卡号(装货)
	private  String loadingJe; //油卡金额（装货）
	private String receiptCalculate;		// 凭回执结算
	private String receiptPayment;		// 支付方式（凭回执）
	private String receiptNumber;		// 油卡卡号（凭回执计算）
	private  String receiptJe; //油卡金额（回执）
	private String totalCost;		// 柴油及过路费合计
	private String rentingCost;		// 租车费用
	private String freight;		// 总运费
	private String forwardingPrice;		// 租车协议号
	private String performancePrice;		// 绩效运价
	private String historyPrice;		// 历史运价
	private List<TmsAdditionalCharge> tmsAdditionalChargeList = Lists.newArrayList();		// 子表列表
	private List<TmsMaterialsInformation> tmsMaterialsInformationList = Lists.newArrayList();		// 子表列表
	private  String type;    //订单类型
	private String zt;
	private String yfk;
	private String hzjs;
	private String workType ;  //作业类型
	private int htcs;//合同打印次数
	private int zccs;//租车协议打印次数
	private String cbqr; //成本确认
	private String arrive;//到站地
    private String pid;//委托单
	private String weight;//总重量
	private Date fhrq;//发货日期
	private String th;//提货单号
	private Double zjs;//总件数
	private String ysdj;//运输单价
	private String zfy;//总费用
	private String fhpzc;//防护品支出
	private String zxfzc;//装卸费支出
	private String qtzc;//其它支出
	private String fhpsr;//防护品收入
	private String bxfsr;//保险费收入
	private String xxfsr;//信息费收入
	private String qtsr;//其它收入
	private String jykbl;//加油卡比例
	private String zcfybl;//租车费用比例
	private String qsr;//签收人
	private String qsjs;//签收件数
	private String qszt ;//签收状态
	private String htzt;//是否生成合同
	private String min;//起始时间
	private String max;//截止时间
	private String bx;//保险状态

	public String getBx() {
		return bx;
	}

	public void setBx(String bx) {
		this.bx = bx;
	}

	public String getMin() {
		return min;
	}

	public void setMin(String min) {
		this.min = min;
	}

	public String getMax() {
		return max;
	}

	public void setMax(String max) {
		this.max = max;
	}

	public String getHtzt() {
		return htzt;
	}

	public void setHtzt(String htzt) {
		this.htzt = htzt;
	}

	public Double getZjs() {
		return zjs;
	}

	public void setZjs(Double zjs) {
		this.zjs = zjs;
	}

	public String getYsdj() {
		return ysdj;
	}

	public void setYsdj(String ysdj) {
		this.ysdj = ysdj;
	}

	public String getZfy() {
		return zfy;
	}

	public void setZfy(String zfy) {
		this.zfy = zfy;
	}

	public String getFhpzc() {
		return fhpzc;
	}

	public void setFhpzc(String fhpzc) {
		this.fhpzc = fhpzc;
	}

	public String getZxfzc() {
		return zxfzc;
	}

	public void setZxfzc(String zxfzc) {
		this.zxfzc = zxfzc;
	}

	public String getQtzc() {
		return qtzc;
	}

	public void setQtzc(String qtzc) {
		this.qtzc = qtzc;
	}

	public String getFhpsr() {
		return fhpsr;
	}

	public void setFhpsr(String fhpsr) {
		this.fhpsr = fhpsr;
	}

	public String getBxfsr() {
		return bxfsr;
	}

	public void setBxfsr(String bxfsr) {
		this.bxfsr = bxfsr;
	}

	public String getXxfsr() {
		return xxfsr;
	}

	public void setXxfsr(String xxfsr) {
		this.xxfsr = xxfsr;
	}

	public String getQtsr() {
		return qtsr;
	}

	public void setQtsr(String qtsr) {
		this.qtsr = qtsr;
	}

	public String getJykbl() {
		return jykbl;
	}

	public void setJykbl(String jykbl) {
		this.jykbl = jykbl;
	}

	public String getZcfybl() {
		return zcfybl;
	}

	public void setZcfybl(String zcfybl) {
		this.zcfybl = zcfybl;
	}

	public String getQsr() {
		return qsr;
	}

	public void setQsr(String qsr) {
		this.qsr = qsr;
	}

	public String getQsjs() {
		return qsjs;
	}

	public void setQsjs(String qsjs) {
		this.qsjs = qsjs;
	}

	public String getQszt() {
		return qszt;
	}

	public void setQszt(String qszt) {
		this.qszt = qszt;
	}



	public String getTh() {
		return th;
	}

	public void setTh(String th) {
		this.th = th;
	}

	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getFhrq() {
		return fhrq;
	}

	public void setFhrq(Date fhrq) {
		this.fhrq = fhrq;
	}

	public String getWeight() {
		return weight;
	}

	public void setWeight(String weight) {
		this.weight = weight;
	}

	public String getPid() {
		return pid;
	}

	public void setPid(String pid) {
		this.pid = pid;
	}

	public String getArrive() {
		return arrive;
	}

	public void setArrive(String arrive) {
		this.arrive = arrive;
	}

	public int getHtcs() {
		return htcs;
	}

	public void setHtcs(int htcs) {
		this.htcs = htcs;
	}

	public int getZccs() {
		return zccs;
	}

	public void setZccs(int zccs) {
		this.zccs = zccs;
	}

	public String getCbqr() {
		return cbqr;
	}

	public void setCbqr(String cbqr) {
		this.cbqr = cbqr;
	}

	public String getWorkType() {
		return workType;
	}

	public void setWorkType(String workType) {
		this.workType = workType;
	}
	public String getYfk() {
		return yfk;
	}

	public void setYfk(String yfk) {
		this.yfk = yfk;
	}

	public String getHzjs() {
		return hzjs;
	}

	public void setHzjs(String hzjs) {
		this.hzjs = hzjs;
	}

	public String getZt() {
		return zt;
	}

	public void setZt(String zt) {
		this.zt = zt;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	public TmsWaybill() {
		super();
	}

	public TmsWaybill(String id){
		super(id);
	}

	public String getKdJe() {
		return kdJe;
	}

	public void setKdJe(String kdJe) {
		this.kdJe = kdJe;
	}

	public String getLoadingJe() {
		return loadingJe;
	}

	public void setLoadingJe(String loadingJe) {
		this.loadingJe = loadingJe;
	}

	public String getReceiptJe() {
		return receiptJe;
	}

	public void setReceiptJe(String receiptJe) {
		this.receiptJe = receiptJe;
	}

	@ExcelField(title="运单号", align=2, sort=1)
	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}
	
	@ExcelField(title="装运单号", align=2, sort=2)
	public String getShipmentNumbers() {
		return shipmentNumbers;
	}

	public void setShipmentNumbers(String shipmentNumbers) {
		this.shipmentNumbers = shipmentNumbers;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="下单日期", align=2, sort=3)
	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="要求发货时间", align=2, sort=4)
	public Date getDeliveryTime() {
		return deliveryTime;
	}

	public void setDeliveryTime(Date deliveryTime) {
		this.deliveryTime = deliveryTime;
	}
	
	@ExcelField(title="收货单位名称", align=2, sort=5)
	public String getUnitName() {
		return unitName;
	}

	public void setUnitName(String unitName) {
		this.unitName = unitName;
	}
	
	@ExcelField(title="收货单位确认人", align=2, sort=6)
	public String getUnitConfirmor() {
		return unitConfirmor;
	}

	public void setUnitConfirmor(String unitConfirmor) {
		this.unitConfirmor = unitConfirmor;
	}
	
	@ExcelField(title="确认人电话", align=2, sort=7)
	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}
	
	@ExcelField(title="收货详细地址", align=2, sort=8)
	public String getSite() {
		return site;
	}

	public void setSite(String site) {
		this.site = site;
	}
	
	@ExcelField(title="到站省", align=2, sort=9)
	public String getArriveProvince() {
		return arriveProvince;
	}

	public void setArriveProvince(String arriveProvince) {
		this.arriveProvince = arriveProvince;
	}
	
	@ExcelField(title="到站地城市", align=2, sort=10)
	public String getArriveCity() {
		return arriveCity;
	}

	public void setArriveCity(String arriveCity) {
		this.arriveCity = arriveCity;
	}
	
	@ExcelField(title="合同里程", align=2, sort=11)
	public String getDistance() {
		return distance;
	}

	public void setDistance(String distance) {
		this.distance = distance;
	}
	
	@ExcelField(title="运输线路", align=2, sort=12)
	public String getTransitLines() {
		return transitLines;
	}

	public void setTransitLines(String transitLines) {
		this.transitLines = transitLines;
	}
	
	@ExcelField(title="委托单号", align=2, sort=13)
	public String getEntrustNumber() {
		return entrustNumber;
	}

	public void setEntrustNumber(String entrustNumber) {
		this.entrustNumber = entrustNumber;
	}
	
	@ExcelField(title="项目名称", align=2, sort=14)
	public String getProjectName() {
		return projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}
	
	@ExcelField(title="委托单状态", align=2, sort=15)
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getBillStatus() {
		return billStatus;
	}

	public void setBillStatus(String billStatus) {
		this.billStatus = billStatus;
	}

	@ExcelField(title="运输方式", align=2, sort=16)
	public String getTransportMode() {
		return transportMode;
	}

	public void setTransportMode(String transportMode) {
		this.transportMode = transportMode;
	}
	
	@ExcelField(title="结算方式", align=2, sort=17)
	public String getClearingMode() {
		return clearingMode;
	}

	public void setClearingMode(String clearingMode) {
		this.clearingMode = clearingMode;
	}
	
	@ExcelField(title="结算类型", align=2, sort=18)
	public String getClearingType() {
		return clearingType;
	}

	public void setClearingType(String clearingType) {
		this.clearingType = clearingType;
	}
	
	@ExcelField(title="合同运距", align=2, sort=19)
	public String getContractDistance() {
		return contractDistance;
	}

	public void setContractDistance(String contractDistance) {
		this.contractDistance = contractDistance;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="要求到货时间", align=2, sort=20)
	public Date getArrivalTime() {
		return arrivalTime;
	}

	public void setArrivalTime(Date arrivalTime) {
		this.arrivalTime = arrivalTime;
	}
	
	@ExcelField(title="特点", align=2, sort=21)
	public String getCharacteristic() {
		return characteristic;
	}

	public void setCharacteristic(String characteristic) {
		this.characteristic = characteristic;
	}
	
	@ExcelField(title="配载单号", align=2, sort=22)
	public String getNumbers() {
		return numbers;
	}

	public void setNumbers(String numbers) {
		this.numbers = numbers;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="配载日期", align=2, sort=23)
	public Date getStowageDate() {
		return stowageDate;
	}

	public void setStowageDate(Date stowageDate) {
		this.stowageDate = stowageDate;
	}
	
	@ExcelField(title="调度人员", align=2, sort=24)
	public Staff getDispatchName() {
		return dispatchName;
	}

	public void setDispatchName(Staff dispatchName) {
		this.dispatchName = dispatchName;
	}
	
	@ExcelField(title="现场督导", align=2, sort=25)
	public Staff getGuidance() {
		return guidance;
	}

	public void setGuidance(Staff guidance) {
		this.guidance = guidance;
	}
	
	@ExcelField(title="托运类型", align=2, sort=26)
	public String getConsign() {
		return consign;
	}

	public void setConsign(String consign) {
		this.consign = consign;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="预计到场时间", align=2, sort=27)
	public Date getPresentTime() {
		return presentTime;
	}

	public void setPresentTime(Date presentTime) {
		this.presentTime = presentTime;
	}
	
	@ExcelField(title="单据状态", align=2, sort=28)
	public String getReceiptsStatus() {
		return receiptsStatus;
	}

	public void setReceiptsStatus(String receiptsStatus) {
		this.receiptsStatus = receiptsStatus;
	}
	
	@ExcelField(title="承运商", align=2, sort=29)
	public String getCommonCarrier() {
		return commonCarrier;
	}

	public void setCommonCarrier(String commonCarrier) {
		this.commonCarrier = commonCarrier;
	}
	
	@ExcelField(title="承运商联系人", align=2, sort=30)
	public String getContacts() {
		return contacts;
	}

	public void setContacts(String contacts) {
		this.contacts = contacts;
	}
	
	@ExcelField(title="车牌号码", align=2, sort=31)
	public String getPlateNumber() {
		return plateNumber;
	}

	public void setPlateNumber(String plateNumber) {
		this.plateNumber = plateNumber;
	}
	
	@ExcelField(title="行驶证号", align=2, sort=32)
	public String getDrivingLicense() {
		return drivingLicense;
	}

	public void setDrivingLicense(String drivingLicense) {
		this.drivingLicense = drivingLicense;
	}
	
	@ExcelField(title="司机姓名", align=2, sort=33)
	public String getDriverName() {
		return driverName;
	}

	public void setDriverName(String driverName) {
		this.driverName = driverName;
	}
	
	@ExcelField(title="司机电话", align=2, sort=34)
	public String getDriverPhone() {
		return driverPhone;
	}

	public void setDriverPhone(String driverPhone) {
		this.driverPhone = driverPhone;
	}
	
	@ExcelField(title="车辆类型", align=2, sort=35)
	public String getVehicleType() {
		return vehicleType;
	}

	public void setVehicleType(String vehicleType) {
		this.vehicleType = vehicleType;
	}
	
	@ExcelField(title="驾驶证号", align=2, sort=36)
	public String getDriveNumber() {
		return driveNumber;
	}

	public void setDriveNumber(String driveNumber) {
		this.driveNumber = driveNumber;
	}
	
	@ExcelField(title="提货流程", align=2, sort=37)
	public String getDelivery() {
		return delivery;
	}

	public void setDelivery(String delivery) {
		this.delivery = delivery;
	}
	
	@ExcelField(title="送货流程", align=2, sort=38)
	public String getGaveCommodity() {
		return gaveCommodity;
	}

	public void setGaveCommodity(String gaveCommodity) {
		this.gaveCommodity = gaveCommodity;
	}
	
	@ExcelField(title="注意事项", align=2, sort=39)
	public String getAttention() {
		return attention;
	}

	public void setAttention(String attention) {
		this.attention = attention;
	}
	
	@ExcelField(title="收款人姓名", align=2, sort=40)
	public String getPayeeName() {
		return payeeName;
	}

	public void setPayeeName(String payeeName) {
		this.payeeName = payeeName;
	}
	
	@ExcelField(title="卡号", align=2, sort=41)
	public String getCardNumber() {
		return cardNumber;
	}

	public void setCardNumber(String cardNumber) {
		this.cardNumber = cardNumber;
	}
	
	@ExcelField(title="开户行", align=2, sort=42)
	public String getBankAddress() {
		return bankAddress;
	}

	public void setBankAddress(String bankAddress) {
		this.bankAddress = bankAddress;
	}
	
	@ExcelField(title="货到付款", align=2, sort=43)
	public String getKdPayment() {
		return kdPayment;
	}

	public void setKdPayment(String kdPayment) {
		this.kdPayment = kdPayment;
	}
	
	@ExcelField(title="支付方式(货到)", align=2, sort=44)
	public String getPaymentWay() {
		return paymentWay;
	}

	public void setPaymentWay(String paymentWay) {
		this.paymentWay = paymentWay;
	}
	
	@ExcelField(title="油卡卡号(货到)", align=2, sort=45)
	public String getPaymentNumber() {
		return paymentNumber;
	}

	public void setPaymentNumber(String paymentNumber) {
		this.paymentNumber = paymentNumber;
	}
	
	@ExcelField(title="装货付款", align=2, sort=46)
	public String getLoadingPayment() {
		return loadingPayment;
	}

	public void setLoadingPayment(String loadingPayment) {
		this.loadingPayment = loadingPayment;
	}
	
	@ExcelField(title="支付方式(装货)", align=2, sort=47)
	public String getLoadingPaymentWay() {
		return loadingPaymentWay;
	}

	public void setLoadingPaymentWay(String loadingPaymentWay) {
		this.loadingPaymentWay = loadingPaymentWay;
	}
	
	@ExcelField(title="油卡卡号(装货)", align=2, sort=48)
	public String getLoadingCardNumber() {
		return loadingCardNumber;
	}

	public void setLoadingCardNumber(String loadingCardNumber) {
		this.loadingCardNumber = loadingCardNumber;
	}
	
	@ExcelField(title="凭回执结算", align=2, sort=49)
	public String getReceiptCalculate() {
		return receiptCalculate;
	}

	public void setReceiptCalculate(String receiptCalculate) {
		this.receiptCalculate = receiptCalculate;
	}
	
	@ExcelField(title="支付方式（凭回执）", align=2, sort=50)
	public String getReceiptPayment() {
		return receiptPayment;
	}

	public void setReceiptPayment(String receiptPayment) {
		this.receiptPayment = receiptPayment;
	}
	
	@ExcelField(title="油卡卡号（凭回执计算）", align=2, sort=51)
	public String getReceiptNumber() {
		return receiptNumber;
	}

	public void setReceiptNumber(String receiptNumber) {
		this.receiptNumber = receiptNumber;
	}
	
	@ExcelField(title="柴油及过路费合计", align=2, sort=52)
	public String getTotalCost() {
		return totalCost;
	}

	public void setTotalCost(String totalCost) {
		this.totalCost = totalCost;
	}
	
	@ExcelField(title="租车费用", align=2, sort=53)
	public String getRentingCost() {
		return rentingCost;
	}

	public void setRentingCost(String rentingCost) {
		this.rentingCost = rentingCost;
	}
	
	@ExcelField(title="总运费", align=2, sort=54)
	public String getFreight() {
		return freight;
	}

	public void setFreight(String freight) {
		this.freight = freight;
	}
	
	@ExcelField(title="本次发运单价", align=2, sort=55)
	public String getForwardingPrice() {
		return forwardingPrice;
	}

	public void setForwardingPrice(String forwardingPrice) {
		this.forwardingPrice = forwardingPrice;
	}
	
	@ExcelField(title="绩效运价", align=2, sort=56)
	public String getPerformancePrice() {
		return performancePrice;
	}

	public void setPerformancePrice(String performancePrice) {
		this.performancePrice = performancePrice;
	}
	
	@ExcelField(title="历史运价", align=2, sort=57)
	public String getHistoryPrice() {
		return historyPrice;
	}

	public void setHistoryPrice(String historyPrice) {
		this.historyPrice = historyPrice;
	}
	
	public List<TmsAdditionalCharge> getTmsAdditionalChargeList() {
		return tmsAdditionalChargeList;
	}

	public void setTmsAdditionalChargeList(List<TmsAdditionalCharge> tmsAdditionalChargeList) {
		this.tmsAdditionalChargeList = tmsAdditionalChargeList;
	}
	public List<TmsMaterialsInformation> getTmsMaterialsInformationList() {
		return tmsMaterialsInformationList;
	}

	public void setTmsMaterialsInformationList(List<TmsMaterialsInformation> tmsMaterialsInformationList) {
		this.tmsMaterialsInformationList = tmsMaterialsInformationList;
	}
}